package com.attendance.www.hr.entitys;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class PunchTimeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public PunchTimeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPunchTimeIdIsNull() {
            addCriterion("punch_time_id is null");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdIsNotNull() {
            addCriterion("punch_time_id is not null");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdEqualTo(Integer value) {
            addCriterion("punch_time_id =", value, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdNotEqualTo(Integer value) {
            addCriterion("punch_time_id <>", value, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdGreaterThan(Integer value) {
            addCriterion("punch_time_id >", value, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("punch_time_id >=", value, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdLessThan(Integer value) {
            addCriterion("punch_time_id <", value, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdLessThanOrEqualTo(Integer value) {
            addCriterion("punch_time_id <=", value, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdIn(List<Integer> values) {
            addCriterion("punch_time_id in", values, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdNotIn(List<Integer> values) {
            addCriterion("punch_time_id not in", values, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdBetween(Integer value1, Integer value2) {
            addCriterion("punch_time_id between", value1, value2, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeIdNotBetween(Integer value1, Integer value2) {
            addCriterion("punch_time_id not between", value1, value2, "punchTimeId");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameIsNull() {
            addCriterion("punch_time_name is null");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameIsNotNull() {
            addCriterion("punch_time_name is not null");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameEqualTo(String value) {
            addCriterion("punch_time_name =", value, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameNotEqualTo(String value) {
            addCriterion("punch_time_name <>", value, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameGreaterThan(String value) {
            addCriterion("punch_time_name >", value, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameGreaterThanOrEqualTo(String value) {
            addCriterion("punch_time_name >=", value, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameLessThan(String value) {
            addCriterion("punch_time_name <", value, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameLessThanOrEqualTo(String value) {
            addCriterion("punch_time_name <=", value, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameLike(String value) {
            addCriterion("punch_time_name like", value, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameNotLike(String value) {
            addCriterion("punch_time_name not like", value, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameIn(List<String> values) {
            addCriterion("punch_time_name in", values, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameNotIn(List<String> values) {
            addCriterion("punch_time_name not in", values, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameBetween(String value1, String value2) {
            addCriterion("punch_time_name between", value1, value2, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andPunchTimeNameNotBetween(String value1, String value2) {
            addCriterion("punch_time_name not between", value1, value2, "punchTimeName");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeIsNull() {
            addCriterion("start_from_time is null");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeIsNotNull() {
            addCriterion("start_from_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeEqualTo(String value) {
            addCriterion("start_from_time =", value, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeNotEqualTo(String value) {
            addCriterion("start_from_time <>", value, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeGreaterThan(String value) {
            addCriterion("start_from_time >", value, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeGreaterThanOrEqualTo(String value) {
            addCriterion("start_from_time >=", value, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeLessThan(String value) {
            addCriterion("start_from_time <", value, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeLessThanOrEqualTo(String value) {
            addCriterion("start_from_time <=", value, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeLike(String value) {
            addCriterion("start_from_time like", value, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeNotLike(String value) {
            addCriterion("start_from_time not like", value, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeIn(List<String> values) {
            addCriterion("start_from_time in", values, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeNotIn(List<String> values) {
            addCriterion("start_from_time not in", values, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeBetween(String value1, String value2) {
            addCriterion("start_from_time between", value1, value2, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartFromTimeNotBetween(String value1, String value2) {
            addCriterion("start_from_time not between", value1, value2, "startFromTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeIsNull() {
            addCriterion("start_to_time is null");
            return (Criteria) this;
        }

        public Criteria andStartToTimeIsNotNull() {
            addCriterion("start_to_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartToTimeEqualTo(String value) {
            addCriterion("start_to_time =", value, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeNotEqualTo(String value) {
            addCriterion("start_to_time <>", value, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeGreaterThan(String value) {
            addCriterion("start_to_time >", value, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeGreaterThanOrEqualTo(String value) {
            addCriterion("start_to_time >=", value, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeLessThan(String value) {
            addCriterion("start_to_time <", value, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeLessThanOrEqualTo(String value) {
            addCriterion("start_to_time <=", value, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeLike(String value) {
            addCriterion("start_to_time like", value, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeNotLike(String value) {
            addCriterion("start_to_time not like", value, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeIn(List<String> values) {
            addCriterion("start_to_time in", values, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeNotIn(List<String> values) {
            addCriterion("start_to_time not in", values, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeBetween(String value1, String value2) {
            addCriterion("start_to_time between", value1, value2, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartToTimeNotBetween(String value1, String value2) {
            addCriterion("start_to_time not between", value1, value2, "startToTime");
            return (Criteria) this;
        }

        public Criteria andStartIntervalIsNull() {
            addCriterion("start_interval is null");
            return (Criteria) this;
        }

        public Criteria andStartIntervalIsNotNull() {
            addCriterion("start_interval is not null");
            return (Criteria) this;
        }

        public Criteria andStartIntervalEqualTo(Integer value) {
            addCriterion("start_interval =", value, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalNotEqualTo(Integer value) {
            addCriterion("start_interval <>", value, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalGreaterThan(Integer value) {
            addCriterion("start_interval >", value, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalGreaterThanOrEqualTo(Integer value) {
            addCriterion("start_interval >=", value, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalLessThan(Integer value) {
            addCriterion("start_interval <", value, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalLessThanOrEqualTo(Integer value) {
            addCriterion("start_interval <=", value, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalIn(List<Integer> values) {
            addCriterion("start_interval in", values, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalNotIn(List<Integer> values) {
            addCriterion("start_interval not in", values, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalBetween(Integer value1, Integer value2) {
            addCriterion("start_interval between", value1, value2, "startInterval");
            return (Criteria) this;
        }

        public Criteria andStartIntervalNotBetween(Integer value1, Integer value2) {
            addCriterion("start_interval not between", value1, value2, "startInterval");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeIsNull() {
            addCriterion("end_from_time is null");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeIsNotNull() {
            addCriterion("end_from_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeEqualTo(String value) {
            addCriterion("end_from_time =", value, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeNotEqualTo(String value) {
            addCriterion("end_from_time <>", value, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeGreaterThan(String value) {
            addCriterion("end_from_time >", value, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeGreaterThanOrEqualTo(String value) {
            addCriterion("end_from_time >=", value, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeLessThan(String value) {
            addCriterion("end_from_time <", value, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeLessThanOrEqualTo(String value) {
            addCriterion("end_from_time <=", value, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeLike(String value) {
            addCriterion("end_from_time like", value, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeNotLike(String value) {
            addCriterion("end_from_time not like", value, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeIn(List<String> values) {
            addCriterion("end_from_time in", values, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeNotIn(List<String> values) {
            addCriterion("end_from_time not in", values, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeBetween(String value1, String value2) {
            addCriterion("end_from_time between", value1, value2, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndFromTimeNotBetween(String value1, String value2) {
            addCriterion("end_from_time not between", value1, value2, "endFromTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeIsNull() {
            addCriterion("end_to_time is null");
            return (Criteria) this;
        }

        public Criteria andEndToTimeIsNotNull() {
            addCriterion("end_to_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndToTimeEqualTo(String value) {
            addCriterion("end_to_time =", value, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeNotEqualTo(String value) {
            addCriterion("end_to_time <>", value, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeGreaterThan(String value) {
            addCriterion("end_to_time >", value, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeGreaterThanOrEqualTo(String value) {
            addCriterion("end_to_time >=", value, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeLessThan(String value) {
            addCriterion("end_to_time <", value, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeLessThanOrEqualTo(String value) {
            addCriterion("end_to_time <=", value, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeLike(String value) {
            addCriterion("end_to_time like", value, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeNotLike(String value) {
            addCriterion("end_to_time not like", value, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeIn(List<String> values) {
            addCriterion("end_to_time in", values, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeNotIn(List<String> values) {
            addCriterion("end_to_time not in", values, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeBetween(String value1, String value2) {
            addCriterion("end_to_time between", value1, value2, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndToTimeNotBetween(String value1, String value2) {
            addCriterion("end_to_time not between", value1, value2, "endToTime");
            return (Criteria) this;
        }

        public Criteria andEndIntervalIsNull() {
            addCriterion("end_interval is null");
            return (Criteria) this;
        }

        public Criteria andEndIntervalIsNotNull() {
            addCriterion("end_interval is not null");
            return (Criteria) this;
        }

        public Criteria andEndIntervalEqualTo(Integer value) {
            addCriterion("end_interval =", value, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalNotEqualTo(Integer value) {
            addCriterion("end_interval <>", value, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalGreaterThan(Integer value) {
            addCriterion("end_interval >", value, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalGreaterThanOrEqualTo(Integer value) {
            addCriterion("end_interval >=", value, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalLessThan(Integer value) {
            addCriterion("end_interval <", value, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalLessThanOrEqualTo(Integer value) {
            addCriterion("end_interval <=", value, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalIn(List<Integer> values) {
            addCriterion("end_interval in", values, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalNotIn(List<Integer> values) {
            addCriterion("end_interval not in", values, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalBetween(Integer value1, Integer value2) {
            addCriterion("end_interval between", value1, value2, "endInterval");
            return (Criteria) this;
        }

        public Criteria andEndIntervalNotBetween(Integer value1, Integer value2) {
            addCriterion("end_interval not between", value1, value2, "endInterval");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIsNull() {
            addCriterion("is_default is null");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIsNotNull() {
            addCriterion("is_default is not null");
            return (Criteria) this;
        }

        public Criteria andIsDefaultEqualTo(Integer value) {
            addCriterion("is_default =", value, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultNotEqualTo(Integer value) {
            addCriterion("is_default <>", value, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultGreaterThan(Integer value) {
            addCriterion("is_default >", value, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_default >=", value, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultLessThan(Integer value) {
            addCriterion("is_default <", value, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultLessThanOrEqualTo(Integer value) {
            addCriterion("is_default <=", value, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultIn(List<Integer> values) {
            addCriterion("is_default in", values, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultNotIn(List<Integer> values) {
            addCriterion("is_default not in", values, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultBetween(Integer value1, Integer value2) {
            addCriterion("is_default between", value1, value2, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDefaultNotBetween(Integer value1, Integer value2) {
            addCriterion("is_default not between", value1, value2, "isDefault");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNull() {
            addCriterion("is_delete is null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNotNull() {
            addCriterion("is_delete is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteEqualTo(Integer value) {
            addCriterion("is_delete =", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotEqualTo(Integer value) {
            addCriterion("is_delete <>", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThan(Integer value) {
            addCriterion("is_delete >", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_delete >=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThan(Integer value) {
            addCriterion("is_delete <", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThanOrEqualTo(Integer value) {
            addCriterion("is_delete <=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIn(List<Integer> values) {
            addCriterion("is_delete in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotIn(List<Integer> values) {
            addCriterion("is_delete not in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteBetween(Integer value1, Integer value2) {
            addCriterion("is_delete between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) {
            addCriterion("is_delete not between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andHoursIsNull() {
            addCriterion("hours is null");
            return (Criteria) this;
        }

        public Criteria andHoursIsNotNull() {
            addCriterion("hours is not null");
            return (Criteria) this;
        }

        public Criteria andHoursEqualTo(Integer value) {
            addCriterion("hours =", value, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursNotEqualTo(Integer value) {
            addCriterion("hours <>", value, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursGreaterThan(Integer value) {
            addCriterion("hours >", value, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursGreaterThanOrEqualTo(Integer value) {
            addCriterion("hours >=", value, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursLessThan(Integer value) {
            addCriterion("hours <", value, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursLessThanOrEqualTo(Integer value) {
            addCriterion("hours <=", value, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursIn(List<Integer> values) {
            addCriterion("hours in", values, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursNotIn(List<Integer> values) {
            addCriterion("hours not in", values, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursBetween(Integer value1, Integer value2) {
            addCriterion("hours between", value1, value2, "hours");
            return (Criteria) this;
        }

        public Criteria andHoursNotBetween(Integer value1, Integer value2) {
            addCriterion("hours not between", value1, value2, "hours");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeIsNull() {
            addCriterion("rest_from_time is null");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeIsNotNull() {
            addCriterion("rest_from_time is not null");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeEqualTo(String value) {
            addCriterion("rest_from_time =", value, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeNotEqualTo(String value) {
            addCriterion("rest_from_time <>", value, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeGreaterThan(String value) {
            addCriterion("rest_from_time >", value, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeGreaterThanOrEqualTo(String value) {
            addCriterion("rest_from_time >=", value, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeLessThan(String value) {
            addCriterion("rest_from_time <", value, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeLessThanOrEqualTo(String value) {
            addCriterion("rest_from_time <=", value, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeLike(String value) {
            addCriterion("rest_from_time like", value, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeNotLike(String value) {
            addCriterion("rest_from_time not like", value, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeIn(List<String> values) {
            addCriterion("rest_from_time in", values, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeNotIn(List<String> values) {
            addCriterion("rest_from_time not in", values, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeBetween(String value1, String value2) {
            addCriterion("rest_from_time between", value1, value2, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestFromTimeNotBetween(String value1, String value2) {
            addCriterion("rest_from_time not between", value1, value2, "restFromTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeIsNull() {
            addCriterion("rest_to_time is null");
            return (Criteria) this;
        }

        public Criteria andRestToTimeIsNotNull() {
            addCriterion("rest_to_time is not null");
            return (Criteria) this;
        }

        public Criteria andRestToTimeEqualTo(String value) {
            addCriterion("rest_to_time =", value, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeNotEqualTo(String value) {
            addCriterion("rest_to_time <>", value, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeGreaterThan(String value) {
            addCriterion("rest_to_time >", value, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeGreaterThanOrEqualTo(String value) {
            addCriterion("rest_to_time >=", value, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeLessThan(String value) {
            addCriterion("rest_to_time <", value, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeLessThanOrEqualTo(String value) {
            addCriterion("rest_to_time <=", value, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeLike(String value) {
            addCriterion("rest_to_time like", value, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeNotLike(String value) {
            addCriterion("rest_to_time not like", value, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeIn(List<String> values) {
            addCriterion("rest_to_time in", values, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeNotIn(List<String> values) {
            addCriterion("rest_to_time not in", values, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeBetween(String value1, String value2) {
            addCriterion("rest_to_time between", value1, value2, "restToTime");
            return (Criteria) this;
        }

        public Criteria andRestToTimeNotBetween(String value1, String value2) {
            addCriterion("rest_to_time not between", value1, value2, "restToTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeIsNull() {
            addCriterion("over_time is null");
            return (Criteria) this;
        }

        public Criteria andOverTimeIsNotNull() {
            addCriterion("over_time is not null");
            return (Criteria) this;
        }

        public Criteria andOverTimeEqualTo(String value) {
            addCriterion("over_time =", value, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeNotEqualTo(String value) {
            addCriterion("over_time <>", value, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeGreaterThan(String value) {
            addCriterion("over_time >", value, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeGreaterThanOrEqualTo(String value) {
            addCriterion("over_time >=", value, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeLessThan(String value) {
            addCriterion("over_time <", value, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeLessThanOrEqualTo(String value) {
            addCriterion("over_time <=", value, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeLike(String value) {
            addCriterion("over_time like", value, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeNotLike(String value) {
            addCriterion("over_time not like", value, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeIn(List<String> values) {
            addCriterion("over_time in", values, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeNotIn(List<String> values) {
            addCriterion("over_time not in", values, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeBetween(String value1, String value2) {
            addCriterion("over_time between", value1, value2, "overTime");
            return (Criteria) this;
        }

        public Criteria andOverTimeNotBetween(String value1, String value2) {
            addCriterion("over_time not between", value1, value2, "overTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}